package project02.controller.mobile.gtw;

import java.util.Calendar;
import java.util.logging.Logger;

import org.slim3.controller.Controller;
import org.slim3.controller.Navigation;

import project02.cool.Helper;
import project02.cool.Util;
import project02.model.UserInfo;

public class IndexController extends Controller {

    private Helper helper = Helper.getInstance();
    private Util util = Util.getInstance();

    @SuppressWarnings("unused")
    private static final Logger logger = Logger.getLogger(IndexController.class.getName());

    @Override
    public Navigation run() {

        // ユーザIDをセッションより取得します
        UserInfo user = new UserInfo();
        try {
            user = util.getUserInfoByImodeId(request.getHeader("x-dcmguid"));
        } catch (Exception e1) {
            requestScope("doMessage", "ユーザIDが認識できません.");
            return forward("/mobile/index2.jsp");
        }
        if (user == null) {
            requestScope("doMessage", "ユーザIDが認識できません.");
            return forward("/mobile/index2.jsp");
        }

        // 現在日時の取得
        Calendar cal = Calendar.getInstance();
        cal = helper.getGMT8Cal(cal);

        // すでに出勤していた場合
        if (!util.chkGtw(user.getUserId(), cal)) {
            requestScope("doMessage", "すでに出勤しております");
            return forward("/mobile/index2.jsp");
        }

        // 出勤データの登録
        try {
            util.setGtw(user.getUserId(), cal);
        } catch (Exception e) {
            requestScope("doMessage", "出勤処理に失敗しました.");
            return forward("/mobile/index2.jsp");
        }
        requestScope("doMessage", "出勤処理を完了しました.");
        requestScope("userInfo", user);

        return forward("/mobile/index2.jsp");
    }
}
